package com.balabala.gym_user.service;

import com.balabala.dto.UserInfoDto;
import com.balabala.dto.UserNameDto;
import com.balabala.gym_user.pojo.dto.TokenDTO;
import com.balabala.gym_user.pojo.dto.UserQueryDTO;
import com.balabala.gym_user.pojo.entity.User;
import com.balabala.gym_user.pojo.vo.WxLoginVO;
import com.balabala.vo.UserNameVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Author 何涛
 * @Date: 2023/04/30/ 13:13
 * @description 用户service
 */
public interface UserService extends IService<User> {


    /**
     * 添加一个默认用户
     */
    User addDefaultUser(String phone);

    /**
     * 用户一键登录
     * @param phone
     * @param code
     * @return
     */

    TokenDTO oneLoginBySmsCode(String phone, String code);

    /**
     * 微信登录
     * @param code
     * @return
     */
    WxLoginVO loginByWx(String code);

    /**
     * 根据token获取用户信息
     * @param  userToken
     * @return
     */
    UserInfoDto getUserInfo(String userToken);

    /**
     * 根据分页条件查询用户信息
     * @param userQueryDto
     * @return
     */
    PageInfo getUserPageList(UserQueryDTO userQueryDto);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    User findById(Long id);

    /**
     * 保存用户信息到token
     * @param user
     * @param userInfoDto
     * @param token
     */
    void saveUserInfoToRedis(User user,UserInfoDto userInfoDto,String token);

    /**
     * 获取用户详细信息
     * @return
     */
    User getUserDetailInfo();

    //根据用户名称查询用户会员卡id
    List<UserNameVo> findVidByName(UserNameDto userNameDto);
}
